package com.nancy.java_design.flyweight.demo1;

/**
 * 享元模式
 * 享元模式是对象的池化，通过对象池来减少创建对象的数量，避免频繁的创建和销毁对象。
 * 享元模式可以减少内存的使用，也可以提高程序的性能。
 * 享元模式一般用于对象数量比较多，并且重复的对象。
 * 享元模式一般包含以下角色：
 * 1. Flyweight 抽象享元类
 * 2. ConcreteFlyweight 具体享元类
 * 3. FlyweightFactory 享元工厂类
 * 4. Client 客户端
 * 以俄罗斯方块为例，每个方块都是一个享元对象。
 */
public abstract class Box {

    //获取方块形状
    public abstract String getShape();

    //显示方块
    public void show(String color) {
        System.out.println("方块种类" + getShape() + "方块颜色：" + color);
    }

}
